package com.project.mapper;

import com.project.bean.UserBean;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface IUserMapper {
    /**
     * 登录,如果登录成功，记录登录日志
     * @param account 帐号
     * @param pwd 密码
     * @return 用户对象，登录失败返回null
     */
    @Select("select * from t_user where u_account=#{account} and u_pwd=#{pwd}")
    @ResultMap("userMap")
    public UserBean login(@Param("account") String account,@Param("pwd") String pwd);

    /**
     * 模糊查询所有用户 如果为不限 返回所有
     * @param grade 权限等级
     * @return 用户集合
     */

    public List<UserBean> findByItem(String grade);

    /**
     * 验证账号是否存在，如果存在提示用户已存在，返回false，如果不存在则进行添加，返回true
     * @param account 用户账号
     * @return 是否存在
     */
    @Select("select * from t_user where u_account=#{account}")
    @ResultMap("userMap")
    public UserBean checkAccount(String account);

    /**
     * 添加用户
     * @param userBean 用户对象
     */
    @Insert("insert into t_user(u_account,u_pwd,u_name,u_grade) values (#{account},#{pwd},#{name},#{grade})")
    public void add(UserBean userBean);

    /**
     * 按id修改用户权限
     * @param id 用户id
     * @param grade 权限等级
     */
    @Update("update t_user set u_grade=#{grade} where pk_userId=#{id}")
    public void update(@Param("id") int id,@Param("grade") String grade);

    /**
     * 按id删除用户
     * @param id 用户id
     */
    @Delete("delete from t_user where pk_userId=#{id}")
    public void del(int id);

    /**
     * 根据用户id得到用户对象
     * @param id 用户id
     * @return 用户对象
     */
    @Select("select * from t_user where pk_userId=#{id}")
    @ResultMap("userMap")
    public UserBean findById(int id);

    /**
     * 修改账号密码
     * @param newPwd 新密码
     */
    @Update("update t_user set u_pwd=#{newPwd} where pk_userId=#{id}")
    public void updatePwd(@Param("id") int id,@Param("newPwd") String newPwd);
}
